﻿using EntGuayasSLA.BL;
using EntGuayasSLA.BL.Listas;
using EntGuayasSLA.BL.Listas.Criterias;
using Ext.Net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace EGuayas.Web.Licenciamiento.admin.tabs
{
    public partial class wucOtrosReq : ucWuc
    {
        protected String FaseLicId
        {
            get
            {
                string val =ReadCustomConfigFaseLic(this.pnlGlobalDocAdd, this.ID);
                if (val=="")
                {
                    val = this.hdFaseId.Text;
                }
                return val;
            }

        }
        protected String EstadoFase
        {
            get
            {

               
                string val = ReadCustomConfigEstadoFase(this.pnlGlobalDocAdd, this.ID);
                if (val == "")
                {
                    val = this.hdEstadoFase.Text;
                }
                return val;
            }

        }
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!X.IsAjaxRequest)
                {
                    List<object> list = new List<object>
                        {
                            new {Nombre = "Word", Id = "Word"},
                            new {Nombre = "Pdf", Id ="Pdf"}
                        };
                    this.stoTipoFrm.DataSource = list;
                    this.stoTipoFrm.DataBind();
                }
            }
            catch (Exception ex)
            {
                RegistrarLog("wucOtrosReq.Page_Load" + ex);
            }
        }


        public void SetCustomConfig(string idPage, string idFase)
        {
            this.hdFaseId.SetValue(idPage + idFase);
            this.hdEstadoFase.SetValue(idPage + "_estadoFase" + idFase);
            SetCustomConfigWucFaseLic(this.pnlGlobalDocAdd, idPage, idFase);
        }
        [DirectMethod(IDAlias = "wucProcOtros")]
        public ArchivoAdicionalLista BindDataAddArchivos(string action, Dictionary<string, object> extraParams)
        {
            try
            {
                if ((EstadoFase!="") && (GetSessionPage.GetSession(EstadoFase) != Valores.Codigo_Estado_Fase_Creado))
                {
                    ModuloRequeridoCriteria fileCriteria = ModuloRequeridoCriteria.NewModuloCriteria();
                    fileCriteria.Id = GetSessionPage.GetSession(FaseLicId);
                    fileCriteria.Modulo = Valores.Modulo_Archivo_Licenciamiento;
                    fileCriteria.Requerido = Valores.Codigo_CHAR_Si;
                    return ArchivoAdicionalLista.GetArchivoAdicionalLista(fileCriteria);
                }
                return null;
            }
            catch (Exception ex)
            {
                RegistrarLog("wucOtrosReq.BindDataAddArchivos" + ex);
            }
            return null;

        }
        protected void btnUpdate_Click(object sender, DirectEventArgs e)
        {
            try
            {

                string json = e.ExtraParams["Values"];
                var row = JSON.Deserialize<Dictionary<string, string>>(json);
                if (row["Id"] != "")
                {
                    DocumentoAdicional objDocAdd = DocumentoAdicional.GetEditableRoot(Guid.Parse(row["Id"]));

                    objDocAdd.Nombre = row["Nombre"];
                    objDocAdd.Formato = row["Formato"];
                   
                    objDocAdd.Save();
                    gdDocAdd.GetStore().Reload();
                }

            }
            catch (Exception ex)
            {
                RegistrarLog("wucOtrosReq.btnUpdate_Click" + ex);
            }

        }
        protected void btnEnviar_Click(object sender, DirectEventArgs e)
        {
            try
            {
                //btnEnviar.Disable();
                string json = e.ExtraParams["Values"];
                Dictionary<string, string>[] listItems = JSON.Deserialize<Dictionary<string, string>[]>(json);

                foreach (Dictionary<string, string> row in listItems)
                {
                    Boolean ifAdd = true;
                    Boolean.TryParse(row["Nuevo"], out ifAdd);
                    if (ifAdd == true)
                    {

                        DocumentoAdicional objDocAdd = DocumentoAdicional.NewEditableRoot();
                        objDocAdd.Id = System.Guid.NewGuid();

                        objDocAdd.Nombre = row["Nombre"];
                        objDocAdd.Formato = row["Formato"];
                        objDocAdd.Obligatorio = Valores.Codigo_CHAR_Si;

                        objDocAdd.Modulo = Valores.Modulo_Archivo_Licenciamiento;
                        objDocAdd.IdModulo = GetSessionPage.GetSession(FaseLicId);
                        objDocAdd.Save();
                    }
                }
                //gdDocAdd.GetStore().RemoveAll();
                X.Msg.Show(new MessageBoxConfig()
                {
                    Message = "Documentos <b>Adicionales</b> creados",
                    Title = "Aviso",
                    Buttons = MessageBox.Button.OK,
                    Icon = MessageBox.Icon.INFO
                });
                //this.panDocAdicionales.ActiveIndex = 0;
                gdDocAdd.GetStore().Reload();
            }
            catch (Exception ex)
            {
                RegistrarLog("wucOtrosReq.btnEnviar_Click" + ex);
            }

        }

        [DirectMethod(IDAlias = "wucProcOtros", ShowMask = true)]
        public Boolean DeleteDocumentoAdicional(Guid idArch)
        {
            try
            {
                DocumentoAdicional objArch = DocumentoAdicional.GetEditableRoot(idArch);
                objArch.Delete();
                objArch.Save();
                gdDocAdd.GetStore().Reload();
            }
            catch (Exception ex)
            {
                RegistrarLog("wucOtrosReq.DeleteDocumentoAdicional" + ex);
            }
            return (true);
        }
    }
}